package es.uji.viselab.robot;

import es.uji.viselab.math.Joints;
import es.uji.viselab.math.PointXYZ;
import es.uji.viselab.math.Pose;
import es.uji.viselab.math.RobotToolLocation;
import es.uji.viselab.robot.links.RobotLink;


public interface RobotInterfaceMAL {
	
    public void setLink(RobotLink rl);
	
    public void connect(String ip, int port) throws RobotException;
	public boolean isConnected();
	public String ping() throws RobotException;
	public void disconnect() throws RobotException;
	
	public Joints getJoints() throws RobotException;
	public PointXYZ getXYZ() throws RobotException;
	public RobotToolLocation getRobotToolLocation() throws RobotException;
	
	public void move(Joints j) throws RobotException;
	public void move(RobotToolLocation rtl) throws RobotException;
	public PointXYZ increaseMove(int dx, int dy, int dz);
	public void moveRelative(float x, float y, float z);
	
	public String getName();

	public boolean isVirtual();

	public Pose getPose();
	

}

